package com.itxiuyixiu.entity.mapper;

import com.itxiuyixiu.entity.model.User;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Optional;

/**
 * @author 黄磊
 * @date 2020/5/1
 */
public interface UserReadMapper {
    @Select("select * from User where username=#{username}")
    Optional<User> findUserByUsername(String username);

    @Select("select * from User")
    List<User> findAllUser();

    @Select("select * from User where userId=#{userId};")
    Optional<User> findUserById(Integer userId);

    @Select("select if((select sId from Student where fk_user_id =#{userId}) is null, false , true)")
    boolean isStudnet(Integer userId);

    /**
     * 根据用户名查找用户是否存在
     *
     * @param username 用户名
     * @return 是否存在（true - 用户名存在，false - 用户名不存在）
     */
    @Select("select if((select userId from User where username = #{username}) is null, false, true)")
    Boolean existByUsername(String username);

    /**
     * 查询邮箱是否被使用
     *
     * @param email 邮箱
     * @return 是否存在（true - 邮箱被使用，false - 邮箱未被使用）
     */
    @Select("select if((select userId from User where userEmail = #{email}) is null, false, true)")
    boolean isEmailUsed(String email);
}
